home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Hardware / Zoomed Video Driver v1.0 SDK / Sample Driver / ZoomedVideo.h < prev   
Encoding:
C/C++ Source or Header  |  1997-06-02  |  3.6 KB  |  135 lines  |  [TEXT/CWIE]

  1. /*
  2.      File:        ZoomedVideo.h
  3.  
  4.      Contains:    PC Card Family Zoomed Video Driver Interface
  5.  
  6.      Version:    System 7.6
  7.  
  8.      Copyright:    © 1984-1997 by Apple Computer, Inc.
  9.                  All rights reserved.
  10.   
  11.      BuildInfo:    Built by:            Fernando Urbina
  12.                 Dated:            5/29/97
  13.  
  14. */
  15. #ifndef __ZOOMEDVIDEO__
  16. #define __ZOOMEDVIDEO__
  17.  
  18. #ifndef __TYPES__
  19. #include <Types.h>
  20. #endif
  21. #ifndef __DEVICES__
  22. #include <Devices.h>
  23. #endif
  24.  
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif
  28.  
  29. #if PRAGMA_IMPORT_SUPPORTED
  30. #pragma import on
  31. #endif
  32.  
  33. #if PRAGMA_ALIGN_SUPPORTED
  34. #pragma options align=mac68k
  35. #endif
  36.  
  37. #define kZVDriverName "\p.ZVPort"
  38. /* Control codes */
  39.  
  40. enum {
  41.     cscZVVideoEnable            = 2,                            /* Used to enable or disable ZV Video*/
  42.     cscZVSetCurrentAnalogValue    = 3,                            /* Used to set brightness, contrast, etc.*/
  43.     cscZVSetInput                = 9,                            /* Set video source to selected input*/
  44.     cscZVSetInputStandard        = 11                            /* Set the input to NTSC, PAL, or SECAM*/
  45. };
  46.  
  47. /* Status codes*/
  48.  
  49. enum {
  50.     cscZVGetVideoEnable            = 2,                            /* Indicates whether ZV Video is enabled*/
  51.     cscZVGetCurrentAnalogValue    = 3,                            /* Used to get brightness, contrast, etc.*/
  52.     cscZVGetDefaultAnalogValue    = 4,
  53.     cscZVGetVSyncState            = 5,                            /* Used to look for a Vertical Sync on ZV Video*/
  54.     cscZVGetInfo                = 6,                            /* Returns the ZV Information*/
  55.     cscZVGetInputFlags            = 7,                            /* Returns the input flags.*/
  56.     cscZVGetNumberOfInputs        = 8,                            /* Returns the number of video inputs*/
  57.     cscZVGetInput                = 9,                            /* Zero-based input number*/
  58.     cscZVGetInputFormat            = 10                            /* Returns whether input is compsite/s-video*/
  59. };
  60.  
  61. /*
  62. -----------------------------------------------------------------
  63.  Additional parameters for csInfoZV control call
  64.     A pointer to ZVInfo is passed in csParam[0] (and csParam[1])
  65.     which must be filled by the driver in response to this call.
  66. */
  67. typedef UInt32 ZVFeatures;
  68.  
  69. enum {
  70.     kZVHasAudio                    = (1 << 0),
  71.     kZVHasTVTuner                = (1 << 1),
  72.     kZVHasContrast                = (1 << 16),
  73.     kZVHasBrightness            = (1 << 17),
  74.     kZVHasSharpness                = (1 << 18),
  75.     kZVHasSaturation            = (1 << 19),
  76.     kZVHasHue                    = (1 << 20)
  77. };
  78.  
  79. struct ZVInfo {
  80.     ZVFeatures                         features;
  81.     UInt32                             currentFlags;
  82.     Rect                             activeRect;
  83.     Boolean                         isInterlaced;
  84.     SInt8                             filler;
  85.     UInt32                             reserved1;
  86.     UInt32                             reserved2;
  87. };
  88. typedef struct ZVInfo ZVInfo;
  89.  
  90. struct ZVFlagRecord {
  91.     Boolean                         csFlag;
  92.     SInt8                             filler;
  93. };
  94. typedef struct ZVFlagRecord ZVFlagRecord;
  95.  
  96. /*
  97. -----------------------------------------------------------------
  98.  Additional definitions for "AnalogCtlZV" control calls
  99.     A pointer to a ZVSetAnalogControlParam is passed to the driver
  100.     whenever the system needs to adjust one of the analog settings.
  101. */
  102. typedef UInt16 ZVAnalogControlSelector;
  103.  
  104. enum {
  105.     kZVContrast                    = 1,                            /* Range:  0x0 <= no change to image, larger values increase the contrast*/
  106.     kZVBrightness                = 2,                            /* Range:  0x0 <= darkest setting, 0xffff = lightest setting*/
  107.     kZVSharpness                = 3,                            /* Range:  0x0 <= no sharpness filtering, 0xffff <= full sharpness filtering*/
  108.     kZVSaturation                = 4,                            /* Range:  0x0 <= min saturation, 0xffff <= max saturation        */
  109.     kZVHue                        = 5,                            /* Range:  0x0 <= -180º shift in hue, 0xffff <= 179º shift, 0x8000 <=0º shift*/
  110.     kZVBlackLevel                = 6,                            /* Range:  0x0 <= max black, 0xffff <= min black level*/
  111.     kZVWhiteLevel                = 7                                /* Range:  0x0 <= min white, 0xffff <= max white level*/
  112. };
  113.  
  114. struct ZVAnalogControlRecord {
  115.     ZVAnalogControlSelector         whichControl;
  116.     UInt16                             value;
  117. };
  118. typedef struct ZVAnalogControlRecord ZVAnalogControlRecord;
  119.  
  120.  
  121. #if PRAGMA_ALIGN_SUPPORTED
  122. #pragma options align=reset
  123. #endif
  124.  
  125. #if PRAGMA_IMPORT_SUPPORTED
  126. #pragma import off
  127. #endif
  128.  
  129. #ifdef __cplusplus
  130. }
  131. #endif
  132.  
  133. #endif /* __ZOOMEDVIDEO__ */
  134.  
  135.